The present invention relates to a method and apparatus for detecting a hardware configuration in a digital terminal, such as a set-top television terminal used for receiving digital video and other data in a subscriber network, and, in response, selecting a corresponding executable software path, e.g., to initialize the hardware.
The recent advent of digital set-top terminals has spurred the growth of subscriber television networks, such as cable/satellite television networks. Such terminals can support increased levels of programming services and a variety of software-based applications/functions, such as an electronic program guide, stock or weather banners, shop and bank at home services, games, and the like. Moreover, this trend is expected to continue with the convergence of telephone, television and computer networks, and the rise of in-home computer networks.
However, it is difficult to maintain compatibility between the software and the hardware of the different terminals in a network. For example, different terminals in one network may have hardware from different manufacturers, or different component versions from the same manufacturer.
The hardware may include, for example, tuners, demodulators, MPEG-2 Decoders (e.g., Audio, Video, and Data), Video Encoders, Audio Mixers, and so forth.
Generally, continual hardware changes in set-top terminals is a result of improvements, cost reductions, new components, and second source manufacturers.
Hardware changes force the development of separate software executables (e.g., software objects) for the different hardware components. A software object is a single software executable. Conventionally, each hardware component type requires its own object or executable.
This is problematic since it creates confusion and requires additional record keeping to maintain a history of the status of each terminal in a network.
Additionally, updated software must be provided to the terminals, which leads to additional expense and record keeping requirements for the network provider. Commonly, the software can be downloaded to specific terminals in download messages. However, this process consumes the limited bandwidth in the network. Delivery of the software via other means, such as local installation via a smart card, is similarly burdensome.
For example, if ten hardware platforms exist in a cable television system, ten corresponding objects would need to be downloaded, one for each platform.
Moreover, these problem are compounded by the continual upgrading and replacement of terminals in a network as technology advances.
Accordingly, it would be desirable to provide a system for dynamically detecting hardware configuration information in a digital television terminal. In response to this information, the system should select software components from a single executable platform firmware, which includes all software necessary to run the terminal""s platform.
In particular, the system should provide a single set-top firmware/software object that contains all software components required to run on all hardware platforms in a network. The software should decide which components to use based on the hardware configuration.
The system should store the hardware configuration information in a manner that avoids corruption.
The system should reduce the burden in managing software executables in a subscriber television network.
The system should reduce the amount of bandwidth required to deliver software to terminals in a communication network.
The detection of the hardware configuration information should be initiated in response to any desired pre-condition, e.g., such as when the terminal is initialized (e.g., powered on or reset), in response to a signal from the network""s headend, or periodically, according to a clock signal at the terminal.
The system should be compatible with networks that communicate digital video, audio and other data to subscriber terminals.
The present invention provides a system having the above and other advantages.
The present invention relates to a method and apparatus for detecting a hardware configuration in a digital terminal, and, in response, selecting a corresponding executable software path, e.g., for initializing the hardware.
In a particular embodiment, a method is presented for initializing a hardware component in a digital terminal. The terminal can be a television terminal or computer terminal, for example. The method includes the step of reading data from a memory of the terminal that provides identifying information regarding at least one hardware component of the terminal. An executable software path is selected from a plurality of available executable software paths according to the identifying information. Additionally, the selected executable software path is executed at a processor of the terminal to initialize the hardware component.
The identifying information may be, e.g., a manufacturer and/or model number of the hardware component. Moreover, the hardware component may be a tuner, demodulator, decoder, encoder, or mixer, for example.
Preferably, the plurality of available executable software paths are provided for a corresponding plurality of types of hardware components using a common software object. The common software object includes software that is common to different types of hardware components, and software that is specific to each of the different types of hardware components.
Advantageously, the total amount of software needed at the terminals is reduced over prior art schemes since the common software object includes software that is common to the different hardware component types only once, instead of providing a different object for each hardware component type which results in duplication of the common software.
A corresponding apparatus is also disclosed.
A method is also presented for initializing hardware components in a plurality of digital television terminals in a digital television network, where the terminals have different respective types of hardware components. The method includes the step of: providing data in respective memories of the terminals that provides identifying information regarding at least one hardware component type of each respective terminal. A common software object is provided to the terminals that contains a plurality of different executable software paths corresponding to the different hardware component types.